﻿using System.Linq.Expressions;
using System;

namespace SL8.SL
{
    /// <summary>
    /// 搜索项接口
    /// </summary>
    public interface ISearchItem
    {
        /// <summary>
        /// Linq 参数,当要把多个搜索项Lambda表达是的组合成一个表达式时,参数必须一样。
        /// </summary>
        ParameterExpression ParameterExpression { get; set; }

        /// <summary>
        /// 搜索实体类型
        /// </summary>
        Type EntityType { get; set; }

        /// <summary>
        /// 标题
        /// </summary>
        string Title { get; set; }

        /// <summary>
        /// 获取搜索表达式
        /// </summary>
        /// <returns>Lambda搜索表达式</returns>
        LambdaExpression GetSearchExpression();

        /// <summary>
        /// 查询
        /// </summary>
        void ToSearch();
    }
}
